其他
Yagmail | 命令行发送电子邮件竟变得如此容易……
. 0. 命令行发送邮件应用场景
当服务器自动完成一个任务后,难道我们要手动登录服务器去查看吗?
No,No,No~
如果服务器完成后自动给我们发送一封邮件提醒多好,可是服务器脚本只会执行命令,不能向我们一样在浏览器登录邮箱,然后写信发送,这可怎么办呢?
俗话说,人生苦短,我用Python!Python大法在任何时候都是非常有效的哈哈~
Yagmail 这个开源项目可以帮我们很好的完成这项工作,只用四行代码即可完成邮件发送,听着是不是很爽,mculover666 来带你一起体验这个神奇的库~
温馨提示:学会之后,可以编写一个脚本,每天早上爬取天气情况发送邮件给女朋友哦~做一个贴心小男友哈哈(斜眼笑.jpg)
. 1. 发信邮箱准备工作
首先我申请一个新的邮箱账号作为发信账号,用于演示:
申请发信邮箱
这里我使用QQ邮箱申请一个专门用于自动化发送邮件的账号:
设置授权码并开启SMTP服务
进入设置 -> 账户 -> POP3/SMTP/IMAP
页面:
开启
POP3/SMTP
服务:开启时,邮箱要求进行验证,发送短信验证即可:
接下来QQ邮箱会给出授权码,一定要保存好:
这样 SMTP 服务开启成功,授权码获取成功,接下来进入今天的主题~
. 2. 安装Yagmail库
pip3 install yagmail
. 3. 四行代码搞定邮件发送
编写如下的 Python 代码:
# 导入库
import yagmail
# 登录SMTP服务器
# user - 邮箱账号
# password - 邮箱登录授权码
# host - 邮箱SMTP服务器地址
yag = yagmail.SMTP(user = "发信邮箱登录账号", password='之前获取的授权码', host = 'smtp.qq.com')
# 编辑邮件内容
contents = [
'Hello, i am sent by yagmail!',
'Here is a test mail!'
]
# 发送邮件
# to - 收信邮箱
# subject - 邮件主题
# contents - 邮件内容
yag.send(to = '2412828003@qq.com', subject = 'SendHelloTest', contents = contents)
在目的邮箱中可以看到成功发送的邮件:
. 4. 邮件内容内嵌图片
在邮件内容中内嵌图片的方法如下:
# 编辑邮件内容
contents = [
'Hello, i am sent by yagmail!',
'Here is a test mail!',
yagmail.inline('E://avator.png') # 邮件内容中内嵌图片
]
# 发送邮件
yag.send(to = '2412828003@qq.com', subject = 'SendPicture', contents = contents)
接收到的邮件内容如下:
. 5. 发送邮件附件
将图片以附件发送的方法如下:
# 编辑邮件内容
contents = [
'Hello, i am sent by yagmail!',
'Here is a test mail!',
'E://avator.png' #以附件方式发送
]
# 发送邮件
yag.send(to = '2412828003@qq.com', subject = 'SendPicture', contents = contents)
接收到的邮件内容如下:
至此,学会如何用命令行发送邮件了吗?赶快试试吧~
更多精彩文章及资源,欢迎关注我的微信公众号:『mculover666』。